//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.itheima.pinda.authority.dto.common;

import com.itheima.pinda.authority.enumeration.common.LogType;
import com.itheima.pinda.base.entity.SuperEntity.Update;
import com.itheima.pinda.common.enums.HttpMethod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

@ApiModel(
        value = "OptLogUpdateDTO",
        description = "系统日志"
)
public class OptLogUpdateDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键")
    @NotNull(
            message = "id不能为空",
            groups = {Update.class}
    )
    private Long id;
    @ApiModelProperty("操作IP")
    @Length(
            max = 50,
            message = "操作IP长度不能超过50"
    )
    private String requestIp;
    @ApiModelProperty("日志类型")
    private LogType type;
    @ApiModelProperty("操作人")
    @Length(
            max = 50,
            message = "操作人长度不能超过50"
    )
    private String userName;
    @ApiModelProperty("操作描述")
    @Length(
            max = 255,
            message = "操作描述长度不能超过255"
    )
    private String description;
    @ApiModelProperty("类路径")
    @Length(
            max = 255,
            message = "类路径长度不能超过255"
    )
    private String classPath;
    @ApiModelProperty("请求类型")
    @Length(
            max = 50,
            message = "请求类型长度不能超过50"
    )
    private String actionMethod;
    @ApiModelProperty("请求地址")
    @Length(
            max = 50,
            message = "请求地址长度不能超过50"
    )
    private String requestUri;
    @ApiModelProperty("请求类型")
    private HttpMethod httpMethod;
    @ApiModelProperty("请求参数")
    @Length(
            max = 65535,
            message = "请求参数长度不能超过65,535"
    )
    private String params;
    @ApiModelProperty("返回值")
    @Length(
            max = 65535,
            message = "返回值长度不能超过65,535"
    )
    private String result;
    @ApiModelProperty("异常详情信息")
    @Length(
            max = 65535,
            message = "异常详情信息长度不能超过65,535"
    )
    private String exDesc;
    @ApiModelProperty("异常描述")
    @Length(
            max = 65535,
            message = "异常描述长度不能超过65,535"
    )
    private String exDetail;
    @ApiModelProperty("开始时间")
    private LocalDateTime startTime;
    @ApiModelProperty("完成时间")
    private LocalDateTime finishTime;
    @ApiModelProperty("消耗时间")
    private Long consumingTime;
    @ApiModelProperty("浏览器")
    @Length(
            max = 500,
            message = "浏览器长度不能超过500"
    )
    private String ua;

    public static OptLogUpdateDTO.OptLogUpdateDTOBuilder builder() {
        return new OptLogUpdateDTO.OptLogUpdateDTOBuilder();
    }

    public Long getId() {
        return this.id;
    }

    public String getRequestIp() {
        return this.requestIp;
    }

    public LogType getType() {
        return this.type;
    }

    public String getUserName() {
        return this.userName;
    }

    public String getDescription() {
        return this.description;
    }

    public String getClassPath() {
        return this.classPath;
    }

    public String getActionMethod() {
        return this.actionMethod;
    }

    public String getRequestUri() {
        return this.requestUri;
    }

    public HttpMethod getHttpMethod() {
        return this.httpMethod;
    }

    public String getParams() {
        return this.params;
    }

    public String getResult() {
        return this.result;
    }

    public String getExDesc() {
        return this.exDesc;
    }

    public String getExDetail() {
        return this.exDetail;
    }

    public LocalDateTime getStartTime() {
        return this.startTime;
    }

    public LocalDateTime getFinishTime() {
        return this.finishTime;
    }

    public Long getConsumingTime() {
        return this.consumingTime;
    }

    public String getUa() {
        return this.ua;
    }

    public OptLogUpdateDTO setId(final Long id) {
        this.id = id;
        return this;
    }

    public OptLogUpdateDTO setRequestIp(final String requestIp) {
        this.requestIp = requestIp;
        return this;
    }

    public OptLogUpdateDTO setType(final LogType type) {
        this.type = type;
        return this;
    }

    public OptLogUpdateDTO setUserName(final String userName) {
        this.userName = userName;
        return this;
    }

    public OptLogUpdateDTO setDescription(final String description) {
        this.description = description;
        return this;
    }

    public OptLogUpdateDTO setClassPath(final String classPath) {
        this.classPath = classPath;
        return this;
    }

    public OptLogUpdateDTO setActionMethod(final String actionMethod) {
        this.actionMethod = actionMethod;
        return this;
    }

    public OptLogUpdateDTO setRequestUri(final String requestUri) {
        this.requestUri = requestUri;
        return this;
    }

    public OptLogUpdateDTO setHttpMethod(final HttpMethod httpMethod) {
        this.httpMethod = httpMethod;
        return this;
    }

    public OptLogUpdateDTO setParams(final String params) {
        this.params = params;
        return this;
    }

    public OptLogUpdateDTO setResult(final String result) {
        this.result = result;
        return this;
    }

    public OptLogUpdateDTO setExDesc(final String exDesc) {
        this.exDesc = exDesc;
        return this;
    }

    public OptLogUpdateDTO setExDetail(final String exDetail) {
        this.exDetail = exDetail;
        return this;
    }

    public OptLogUpdateDTO setStartTime(final LocalDateTime startTime) {
        this.startTime = startTime;
        return this;
    }

    public OptLogUpdateDTO setFinishTime(final LocalDateTime finishTime) {
        this.finishTime = finishTime;
        return this;
    }

    public OptLogUpdateDTO setConsumingTime(final Long consumingTime) {
        this.consumingTime = consumingTime;
        return this;
    }

    public OptLogUpdateDTO setUa(final String ua) {
        this.ua = ua;
        return this;
    }

    public OptLogUpdateDTO() {
    }

    public OptLogUpdateDTO(final Long id, final String requestIp, final LogType type, final String userName, final String description, final String classPath, final String actionMethod, final String requestUri, final HttpMethod httpMethod, final String params, final String result, final String exDesc, final String exDetail, final LocalDateTime startTime, final LocalDateTime finishTime, final Long consumingTime, final String ua) {
        this.id = id;
        this.requestIp = requestIp;
        this.type = type;
        this.userName = userName;
        this.description = description;
        this.classPath = classPath;
        this.actionMethod = actionMethod;
        this.requestUri = requestUri;
        this.httpMethod = httpMethod;
        this.params = params;
        this.result = result;
        this.exDesc = exDesc;
        this.exDetail = exDetail;
        this.startTime = startTime;
        this.finishTime = finishTime;
        this.consumingTime = consumingTime;
        this.ua = ua;
    }

    @Override
    public String toString() {
        return "OptLogUpdateDTO(super=" + super.toString() + ", id=" + this.getId() + ", requestIp=" + this.getRequestIp() + ", type=" + this.getType() + ", userName=" + this.getUserName() + ", description=" + this.getDescription() + ", classPath=" + this.getClassPath() + ", actionMethod=" + this.getActionMethod() + ", requestUri=" + this.getRequestUri() + ", httpMethod=" + this.getHttpMethod() + ", params=" + this.getParams() + ", result=" + this.getResult() + ", exDesc=" + this.getExDesc() + ", exDetail=" + this.getExDetail() + ", startTime=" + this.getStartTime() + ", finishTime=" + this.getFinishTime() + ", consumingTime=" + this.getConsumingTime() + ", ua=" + this.getUa() + ")";
    }

    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof OptLogUpdateDTO)) {
            return false;
        } else {
            OptLogUpdateDTO other = (OptLogUpdateDTO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label215: {
                    Object this$id = this.getId();
                    Object other$id = other.getId();
                    if (this$id == null) {
                        if (other$id == null) {
                            break label215;
                        }
                    } else if (this$id.equals(other$id)) {
                        break label215;
                    }

                    return false;
                }

                Object this$requestIp = this.getRequestIp();
                Object other$requestIp = other.getRequestIp();
                if (this$requestIp == null) {
                    if (other$requestIp != null) {
                        return false;
                    }
                } else if (!this$requestIp.equals(other$requestIp)) {
                    return false;
                }

                label201: {
                    Object this$type = this.getType();
                    Object other$type = other.getType();
                    if (this$type == null) {
                        if (other$type == null) {
                            break label201;
                        }
                    } else if (this$type.equals(other$type)) {
                        break label201;
                    }

                    return false;
                }

                Object this$userName = this.getUserName();
                Object other$userName = other.getUserName();
                if (this$userName == null) {
                    if (other$userName != null) {
                        return false;
                    }
                } else if (!this$userName.equals(other$userName)) {
                    return false;
                }

                label187: {
                    Object this$description = this.getDescription();
                    Object other$description = other.getDescription();
                    if (this$description == null) {
                        if (other$description == null) {
                            break label187;
                        }
                    } else if (this$description.equals(other$description)) {
                        break label187;
                    }

                    return false;
                }

                Object this$classPath = this.getClassPath();
                Object other$classPath = other.getClassPath();
                if (this$classPath == null) {
                    if (other$classPath != null) {
                        return false;
                    }
                } else if (!this$classPath.equals(other$classPath)) {
                    return false;
                }

                label173: {
                    Object this$actionMethod = this.getActionMethod();
                    Object other$actionMethod = other.getActionMethod();
                    if (this$actionMethod == null) {
                        if (other$actionMethod == null) {
                            break label173;
                        }
                    } else if (this$actionMethod.equals(other$actionMethod)) {
                        break label173;
                    }

                    return false;
                }

                label166: {
                    Object this$requestUri = this.getRequestUri();
                    Object other$requestUri = other.getRequestUri();
                    if (this$requestUri == null) {
                        if (other$requestUri == null) {
                            break label166;
                        }
                    } else if (this$requestUri.equals(other$requestUri)) {
                        break label166;
                    }

                    return false;
                }

                Object this$httpMethod = this.getHttpMethod();
                Object other$httpMethod = other.getHttpMethod();
                if (this$httpMethod == null) {
                    if (other$httpMethod != null) {
                        return false;
                    }
                } else if (!this$httpMethod.equals(other$httpMethod)) {
                    return false;
                }

                label152: {
                    Object this$params = this.getParams();
                    Object other$params = other.getParams();
                    if (this$params == null) {
                        if (other$params == null) {
                            break label152;
                        }
                    } else if (this$params.equals(other$params)) {
                        break label152;
                    }

                    return false;
                }

                label145: {
                    Object this$result = this.getResult();
                    Object other$result = other.getResult();
                    if (this$result == null) {
                        if (other$result == null) {
                            break label145;
                        }
                    } else if (this$result.equals(other$result)) {
                        break label145;
                    }

                    return false;
                }

                Object this$exDesc = this.getExDesc();
                Object other$exDesc = other.getExDesc();
                if (this$exDesc == null) {
                    if (other$exDesc != null) {
                        return false;
                    }
                } else if (!this$exDesc.equals(other$exDesc)) {
                    return false;
                }

                Object this$exDetail = this.getExDetail();
                Object other$exDetail = other.getExDetail();
                if (this$exDetail == null) {
                    if (other$exDetail != null) {
                        return false;
                    }
                } else if (!this$exDetail.equals(other$exDetail)) {
                    return false;
                }

                label124: {
                    Object this$startTime = this.getStartTime();
                    Object other$startTime = other.getStartTime();
                    if (this$startTime == null) {
                        if (other$startTime == null) {
                            break label124;
                        }
                    } else if (this$startTime.equals(other$startTime)) {
                        break label124;
                    }

                    return false;
                }

                Object this$finishTime = this.getFinishTime();
                Object other$finishTime = other.getFinishTime();
                if (this$finishTime == null) {
                    if (other$finishTime != null) {
                        return false;
                    }
                } else if (!this$finishTime.equals(other$finishTime)) {
                    return false;
                }

                Object this$consumingTime = this.getConsumingTime();
                Object other$consumingTime = other.getConsumingTime();
                if (this$consumingTime == null) {
                    if (other$consumingTime != null) {
                        return false;
                    }
                } else if (!this$consumingTime.equals(other$consumingTime)) {
                    return false;
                }

                Object this$ua = this.getUa();
                Object other$ua = other.getUa();
                if (this$ua == null) {
                    if (other$ua != null) {
                        return false;
                    }
                } else if (!this$ua.equals(other$ua)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof OptLogUpdateDTO;
    }

    @Override
    public int hashCode() {
        /*int PRIME = true;*/
        int result = 1;
        Object $id = this.getId();
        result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $requestIp = this.getRequestIp();
        result = result * 59 + ($requestIp == null ? 43 : $requestIp.hashCode());
        Object $type = this.getType();
        result = result * 59 + ($type == null ? 43 : $type.hashCode());
        Object $userName = this.getUserName();
        result = result * 59 + ($userName == null ? 43 : $userName.hashCode());
        Object $description = this.getDescription();
        result = result * 59 + ($description == null ? 43 : $description.hashCode());
        Object $classPath = this.getClassPath();
        result = result * 59 + ($classPath == null ? 43 : $classPath.hashCode());
        Object $actionMethod = this.getActionMethod();
        result = result * 59 + ($actionMethod == null ? 43 : $actionMethod.hashCode());
        Object $requestUri = this.getRequestUri();
        result = result * 59 + ($requestUri == null ? 43 : $requestUri.hashCode());
        Object $httpMethod = this.getHttpMethod();
        result = result * 59 + ($httpMethod == null ? 43 : $httpMethod.hashCode());
        Object $params = this.getParams();
        result = result * 59 + ($params == null ? 43 : $params.hashCode());
        Object $result = this.getResult();
        result = result * 59 + ($result == null ? 43 : $result.hashCode());
        Object $exDesc = this.getExDesc();
        result = result * 59 + ($exDesc == null ? 43 : $exDesc.hashCode());
        Object $exDetail = this.getExDetail();
        result = result * 59 + ($exDetail == null ? 43 : $exDetail.hashCode());
        Object $startTime = this.getStartTime();
        result = result * 59 + ($startTime == null ? 43 : $startTime.hashCode());
        Object $finishTime = this.getFinishTime();
        result = result * 59 + ($finishTime == null ? 43 : $finishTime.hashCode());
        Object $consumingTime = this.getConsumingTime();
        result = result * 59 + ($consumingTime == null ? 43 : $consumingTime.hashCode());
        Object $ua = this.getUa();
        result = result * 59 + ($ua == null ? 43 : $ua.hashCode());
        return result;
    }

    public static class OptLogUpdateDTOBuilder {
        private Long id;
        private String requestIp;
        private LogType type;
        private String userName;
        private String description;
        private String classPath;
        private String actionMethod;
        private String requestUri;
        private HttpMethod httpMethod;
        private String params;
        private String result;
        private String exDesc;
        private String exDetail;
        private LocalDateTime startTime;
        private LocalDateTime finishTime;
        private Long consumingTime;
        private String ua;

        OptLogUpdateDTOBuilder() {
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder id(final Long id) {
            this.id = id;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder requestIp(final String requestIp) {
            this.requestIp = requestIp;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder type(final LogType type) {
            this.type = type;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder userName(final String userName) {
            this.userName = userName;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder description(final String description) {
            this.description = description;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder classPath(final String classPath) {
            this.classPath = classPath;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder actionMethod(final String actionMethod) {
            this.actionMethod = actionMethod;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder requestUri(final String requestUri) {
            this.requestUri = requestUri;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder httpMethod(final HttpMethod httpMethod) {
            this.httpMethod = httpMethod;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder params(final String params) {
            this.params = params;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder result(final String result) {
            this.result = result;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder exDesc(final String exDesc) {
            this.exDesc = exDesc;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder exDetail(final String exDetail) {
            this.exDetail = exDetail;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder startTime(final LocalDateTime startTime) {
            this.startTime = startTime;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder finishTime(final LocalDateTime finishTime) {
            this.finishTime = finishTime;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder consumingTime(final Long consumingTime) {
            this.consumingTime = consumingTime;
            return this;
        }

        public OptLogUpdateDTO.OptLogUpdateDTOBuilder ua(final String ua) {
            this.ua = ua;
            return this;
        }

        public OptLogUpdateDTO build() {
            return new OptLogUpdateDTO(this.id, this.requestIp, this.type, this.userName, this.description, this.classPath, this.actionMethod, this.requestUri, this.httpMethod, this.params, this.result, this.exDesc, this.exDetail, this.startTime, this.finishTime, this.consumingTime, this.ua);
        }

        @Override
        public String toString() {
            return "OptLogUpdateDTO.OptLogUpdateDTOBuilder(id=" + this.id + ", requestIp=" + this.requestIp + ", type=" + this.type + ", userName=" + this.userName + ", description=" + this.description + ", classPath=" + this.classPath + ", actionMethod=" + this.actionMethod + ", requestUri=" + this.requestUri + ", httpMethod=" + this.httpMethod + ", params=" + this.params + ", result=" + this.result + ", exDesc=" + this.exDesc + ", exDetail=" + this.exDetail + ", startTime=" + this.startTime + ", finishTime=" + this.finishTime + ", consumingTime=" + this.consumingTime + ", ua=" + this.ua + ")";
        }
    }
}
